package com.coolw.test.sftp.monitor;

import com.jcraft.jsch.SftpProgressMonitor;
import lombok.extern.slf4j.Slf4j;

/**
 * sftp 传输监控
 *
 * @author coolw
 * @date 2023/11/17 10:43
 */
@Slf4j
public class MySftpProgressMonitor implements SftpProgressMonitor {

    /**
     * 记录已传输的数据总大小
     */
    private long transfered;

    /**
     * 执行开始时执行
     */
    @Override
    public void init(int op, String src, String dest, long max) {
        log.info("transfer begin......");
    }

    /**
     * 每次数据传输完count大小的数据块后，执行
     *
     * @param count 数据大小
     */
    @Override
    public boolean count(long count) {
        transfered += count;
        log.info("transferred transfer total size: {} bytes", transfered);
        return true;
    }

    /**
     * 执行结束后执行
     */
    @Override
    public void end() {
        log.info("transfer end......");
    }
}
